

import java.io.*;
import java.net.*;
import java.util.Scanner;
public class Server {
   public static void main(String args[]) {
      String [] answer ={"没有。","不用了。","好的，Byebye!"};
      ServerSocket serverForClient=null;
      Socket socketOnServer=null;
      DataOutputStream out=null;
      DataInputStream  in=null;
      try {
		  //（1）建立服务器端的socket服务，需要一个端口
		  serverForClient = new ServerSocket(2010);
      }
      catch(IOException e1) {
            System.out.println(e1);
      } 
      try{ System.out.println("等待客户呼叫");
	       //（2）服务端没有直接流的操作，而是通过accept()方法获取客户端对象，在通过获取到的客户端对象的流和客户端进行通信
           socketOnServer = serverForClient.accept(); //堵塞状态，除非有客户呼叫
		   //（3）通过客户端对象获取流对象的方式，读取数据或者写入数据
           out=new DataOutputStream(socketOnServer.getOutputStream());
           in=new DataInputStream(socketOnServer.getInputStream());
           String s2=null;
        while(true) {
        	Scanner s1=new Scanner(System.in);
        	
              String s=in.readUTF(); // in读取信息，堵塞状态
              System.out.println("服务器收到客户的提问:"+s);
              System.out.println("输入的回复,输入1退出");
               s2=s1.next();
              out.writeUTF(s2);
              Thread.sleep(2000);
           }
      }
      catch(Exception e) {
          System.out.println("客户已断开"+e);
      }
	  //（4）一般会关闭客户端，不会关闭服务器。因为服务端是一直提供服务的。

   }
}
